package com.cpit.platform.datasource;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TargetDataSource {
    public static final String TYPE_ARGUMENT = "argument";
    public static final String TYPE_ANNOTATION = "annotation";
    //argument:表示通过方法参数确定数据源,annotation:表示通过注解方式确定数据源
    @AliasFor("byType")
    String type()  default TYPE_ANNOTATION;

    //type=argument时说明参数位置
    @AliasFor("parameterPosition")
    int position()  default 0;

    //type=annotation时说明数据源,对应数据源标识
    @AliasFor("targetDataSource")
    String value() default "";
}
